package cn.cdutetc.library.service;

import cn.cdutetc.library.entity.pojo.BookItem;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 图书条目服务接口
 */
public interface BookItemService extends IService<BookItem> {
    
    /**
     * 根据图书ID获取所有图书条目
     * @param bookId 图书ID
     * @return 图书条目列表
     */
    List<BookItem> getBookItemsByBookId(Integer bookId);
    
    /**
     * 根据图书ID和状态获取图书条目
     * @param bookId 图书ID
     * @param status 状态
     * @return 图书条目列表
     */
    List<BookItem> getBookItemsByBookIdAndStatus(Integer bookId, String status);
    
    /**
     * 更新图书条目状态
     * @param itemId 图书条目ID
     * @param status 新状态
     * @param remark 备注
     * @return 是否成功
     */
    boolean updateBookItemStatus(Integer itemId, String status, String remark);
    
    /**
     * 批量更新图书条目状态
     * @param itemIds 图书条目ID列表
     * @param status 新状态
     * @param remark 备注
     * @return 是否成功
     */
    boolean batchUpdateBookItemStatus(List<Integer> itemIds, String status, String remark);
    
    /**
     * 获取可借阅的图书条目
     * @param bookId 图书ID
     * @param count 需要的数量
     * @return 可借阅的图书条目列表
     */
    List<BookItem> getAvailableBookItems(Integer bookId, Integer count);
    
    /**
     * 统计图书条目状态数量
     * @param bookId 图书ID
     * @return 状态统计信息
     */
    java.util.Map<String, Integer> getBookItemStatusCount(Integer bookId);
}
